解题思路:
第一处:利用for循环语句取当前字符串的长度,所以应填:ss[i]。
第二处:在字符串的右边填字符*,其开始位置是n+j,其中n是该字符串本身的长度,j是
循环控制变量,所以应填:n+j。
第三处:字符串处理结束应置字符串结束符,其位置是n+j+1,所以应填:1。
***************************************************
给定程序MODI1.C中 fun 函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写。(这里的“单词”是指由空格隔开的字符串)。
例如, 若输入
"I am a student to take the examination.",
则应输出 "I aM A studenT tO takE thE examination."。
请修改程序中的错误之处, 使它能得出正确的结果。
注意: 不要改动 main 函数, 不得删行, 也不得更改程序的结构!
给定源程序:
#include
#include
void fun( char *p )
{
int k = 0;
for( ; *p; p++ )
if( k )
{
if( p == ’ ’ )
{
k = 0;
* (p-1) = toupper( *( p - 1 ) )
}
}
else
k = 1;
}
main()
{
char chrstr[64];
int d ;
printf( "\nPlease enter an English sentence within 63 letters: ");
gets(chrstr);
d=strlen(chrstr) ;
chrstr[d] = ’ ’ ;
chrstr[d+1] = 0 ;
printf("\n\nBefore changing:\n %s", chrstr);
fun(chrstr);
printf("\nAfter changing:\n %s", chrstr);
}